package com.zhiwei.cppapp;

import android.app.Application;

import com.zhiwei.cppapp.serialport.SerialPort;
import com.zhiwei.cppapp.serialport.SerialPortFinder;

import java.io.File;
import java.io.IOException;
import java.security.InvalidParameterException;
import java.util.Arrays;
import java.util.List;

/**
 * @author lenovo
 * @date 2016/12/26 0026
 * Application 用于初始化App的一些必要信息数据
 */

public class MyApplication extends Application {

    //串口查找类的实例化
    public SerialPortFinder mSerialPortFinder;
    private SerialPort mSerialPort = null;//获取串口文件对象，用于下面关闭串口使用。

    @Override
    public void onCreate() {
        super.onCreate();
        mSerialPortFinder = new SerialPortFinder();
        // Devices这里面获得的sharedPreference信息
        String[] entries = mSerialPortFinder.getAllDevices();
    }

    public List<String> getDevices() {
        return Arrays.asList(mSerialPortFinder.getAllDevicesPath());
    }

    /**
     * 获取串口管理文件对象
     *
     * @return
     * @throws SecurityException         文件读写安全异常
     * @throws IOException               IO异常，打开关闭串口的问题，
     * @throws InvalidParameterException 非法参数异常
     */
    public SerialPort getSerialPort() throws IOException {
        String[] stringArray = getResources().getStringArray(R.array.baudrates);
        mSerialPort = new SerialPort(new File("/dev/ttyS4"), 115200, 0);
        return mSerialPort;
    }

    /**
     * 关闭串口，
     */
    public void closeSerialPort() {
        if (mSerialPort != null) {
            mSerialPort.close();
            mSerialPort = null;
        }
    }
}
